package com.miguo.plugins;

import android.content.Context;

import com.miguo.app.AppContext;
import com.miguo.app.AppConfig;
import com.miguo.framework.utils.Toast;
import com.umeng.update.UmengUpdateAgent;
import com.umeng.update.UmengUpdateListener;
import com.umeng.update.UpdateConfig;
import com.umeng.update.UpdateResponse;
import com.umeng.update.UpdateStatus;

/*
 * 友盟组件
 * http://www.umeng.com
 * 
 * umeng-update 自动更新
 */
public class UmengUp {

    public static void init() {
        // 是否开启BUG false true
        UpdateConfig.setDebug(AppConfig.DEBUG);
        // 设置推广渠道
        // UpdateConfig.setChannel(App.sChannel);
        // 设置自动弹出更新提示 true false
        UpdateConfig.setUpdateAutoPopup(true);
        // 设置进行更新的网络环境 TRUE只在WIFI环境下检测更新 FALSE所有网络环境中均检测更新
        UpdateConfig.setUpdateOnlyWifi(false);
        // 增量更新 true false
        UpdateConfig.setDeltaUpdate(true);
        // 更新下载通知栏是否启用高级样式，显示暂停/继续 true false
        UpdateConfig.setRichNotification(true);
    }

    public static void update(Context context) {
        // wifi环境 静默下载更新
        UmengUpdateAgent.silentUpdate(context);
        // 自动更新模式
        UmengUpdateAgent.update(context);
        // 取清监听检测更新的结果
        UmengUpdateAgent.setUpdateListener(null);
    }

    public static void forceUpdate(Context context) {
        /*
         * updateOnlyWifi 设置进行更新的网络环境
		 * true(默认) 只在wifi环境下检测更新
		 * false 在所有网络环境中均检测更新
		 */
        UmengUpdateAgent.setUpdateOnlyWifi(false);
        // 手动检测更新
        UmengUpdateAgent.forceUpdate(context);
		/*
		 * UmengUpdateAgent.setUpdateUIStyle 更新提示方式
		 * UpdateStatus.STYLE_DIALOG(默认) 使用对话框进行更新提示
		 * UpdateStatus.STYLE_NOTIFICATION 使用通知栏进行更新提示
		 */
        UmengUpdateAgent.setUpdateUIStyle(UpdateStatus.STYLE_DIALOG);
        // 自定义监听检测更新的结果
        UmengUpdateAgent.setUpdateListener(mUpListener);
    }

    final static UmengUpdateListener mUpListener = new UmengUpdateListener() {
        @Override
        public void onUpdateReturned(int updateStatus, UpdateResponse updateInfo) {
            switch (updateStatus) {
                case UpdateStatus.Yes:
                    Toast.show(AppContext.getContext(), "发现新版本");
                    break;
                case UpdateStatus.No:
                    Toast.show(AppContext.getContext(), "当前已经是最新版");
                    break;
                case UpdateStatus.NoneWifi:
                    Toast.show(AppContext.getContext(), "没有wifi连接,只在wifi下更新~!");
                    break;
                case UpdateStatus.Timeout:
                    Toast.show(AppContext.getContext(), "亲~请查看网络是否正常啦~!");
                    break;
            }
        }
    };
}